Greater sophistication and variety in the types of components currently incorporated into computing devices, along with a need for a greater range of features incorporated into their boot software, have resulted in a new trend of boot software made up of multiple distinct parts provided by different sources. Unfortunately, this new trend creates new opportunities for the security of computing devices to be compromised through the surreptitious inclusion of malicious software intended to enable invasions of privacy, fraud, theft of information, etc. (commonly called “malware”).
As an example of an increasing variety in types of components, there is an increasing variety of types of storage device employing an increasing variety of interfaces by which a storage device may be coupled to a computing device to enable data to be stored thereon and retrieved therefrom. Each new variety or type of device to be added as a component to a computing device requires software support to enable its use by the computing device.
This new trend has also been spurred by the increasing desire to provide a greater range of functionality in the boot software independent of whatever functionality may later be provided by an operating system that is loaded after operation of the boot software, and to which control is normally transferred to complete the boot process. An example of such new functionality is the ability to format, perform diagnostics on, and/or defragment the contents of various storage devices, as well as to load, copy, transfer and/or delete content stored thereon.
Prior implementations of boot software have usually comprised a single fully compiled piece of software commonly known as BIOS (basic input/output system) that is of relatively small size and often does little more than initialize hardware components to a known state before transferring control to an operating system, as well as providing a limited software interface to access a relatively modest set of basic functions. This single-piece configuration of BIOS has inherently forestalled efforts to introduce malware. Unfortunately, the desire to use a multiple-part form of boot software introduces the potential for malware to be surreptitiously included as one of those multiple parts. It is with respect to these and other considerations that the techniques described herein are needed.